//package com.luli.config.websocketSpringBOot;
//
///**
// * 陆离
// * 2024/12/26
// */
//
//import cn.hutool.core.collection.CollectionUtil;
//import com.alibaba.fastjson.JSON;
//
//
//import com.luli.config.websocketSpringBOot.entity.LinuxCpuUsageMonitorViaSSH;
//import com.luli.config.websocketSpringBOot.entity.LinuxData;
//import com.luli.config.websocketSpringBOot.entity.LinuxParam;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.web.socket.CloseStatus;
//import org.springframework.web.socket.TextMessage;
//import org.springframework.web.socket.WebSocketSession;
//import org.springframework.web.socket.handler.TextWebSocketHandler;
//
//import java.io.IOException;
//import java.util.ArrayList;
//import java.util.List;
//
//@Slf4j
//public class CpuUsageWebSocketHandler extends TextWebSocketHandler {
//    private final static LinuxParam linuxA = new LinuxParam("192.168.175.135", 22, "root", "lzp+19991128");
//    private final static LinuxParam linuxB = new LinuxParam("192.168.175.132", 22, "root", "root123");
//
//
//    private static List<WebSocketSession> sessions = new ArrayList<>();
//
//    @Override
//    public void afterConnectionEstablished(WebSocketSession session) throws Exception {
//        sessions.add(session);
//    }
//
//    @Override
//    protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
//        // 这里可以根据接收到的消息做不同处理，比如暂停/继续推送等，暂时留空实现
//        log.info("----handleTextMessage---" + message);
//    }
//
//    public static class CpuUsagePusher implements Runnable {
//        @Override
//        public void run() {
//            while (true) {
//                long startTime = System.currentTimeMillis();
//                List<LinuxData> linuxData = getLinuxData();
//                log.info("===linux服务器数据状态====" + JSON.toJSONString(linuxData));
//                if (CollectionUtil.isNotEmpty(linuxData)) {
//                    for (WebSocketSession session : sessions) {
//                        try {
//                            session.sendMessage(new TextMessage(JSON.toJSONString(linuxData)));
//                        } catch (IOException e) {
//                            e.printStackTrace();
//                        }
//                    }
//                    try {
//                        Thread.sleep(20000);  // 每隔1秒推送一次，可根据需求调整时间间隔
//                    } catch (InterruptedException e) {
//                        e.printStackTrace();
//                    }
//                }
//                long endTime = System.currentTimeMillis();
//                log.info("开始时间：" + startTime);
//                log.info("结束时间：" + endTime);
//                log.info("耗时：{}", endTime - startTime);
//            }
//        }
//    }
//
//    private static List<LinuxData> getLinuxData() {
//        List<LinuxParam> serverInfos = new ArrayList<>();
//        serverInfos.add(linuxA);
//        serverInfos.add(linuxB);
//        log.info("-----监控服务-----" + "\n" + JSON.toJSONString(serverInfos, true));
//        return LinuxCpuUsageMonitorViaSSH.getCpuUsages(serverInfos);
//    }
//
//    @Override
//    public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
//        sessions.remove(session);
//    }
//
//}
